﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BUS;
using DTO;

namespace QLCHHoaLan
{
    public partial class FrmQuanLyNhapHang : Form
    {
        public FrmQuanLyNhapHang()
        {
            InitializeComponent();
        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

        private void FrmQuanLyNhapHang_Load(object sender, EventArgs e)
        {
            dgvNhapHang.AutoGenerateColumns = false;
            dgvNhapHang.Columns[6].Visible = false;
            dgvNhapHang.Columns[7].Visible = false;
            LoadDSNhaCungCap();
            LoadTenHoa();
            txtNgay.Text = DateTime.Now.ToShortDateString();

        }
        public List<ChiTietNhapHangDTO> list = new List<ChiTietNhapHangDTO>();

        private void btnThemHoa_Click(object sender, EventArgs e)
        {
            if (txtSoLuong.Text == "")
            {
                MessageBox.Show("Số lượng nhập không hợp lệ!");
                return;
            }
            if (txtGia.Text == "")
            {
                MessageBox.Show("Giá nhập không hợp lệ!");
                return;
            }
            ChiTietNhapHangDTO NH = new ChiTietNhapHangDTO();
            NH.MaHoa = Int32.Parse(txtMaHoa.Text);
            NH.MaNCC = Int32.Parse(cbbTenNCC.SelectedValue.ToString());
            NH.TenNCC = cbbTenNCC.Text;
            NH.TenHoa = cbbTenHoa.Text;
            NH.SoLuong = Convert.ToInt32(txtSoLuong.Text);
            NH.Gia = Convert.ToInt32(txtGia.Text);
            NH.ThanhTien = NH.SoLuong * NH.Gia;
            if (txtSoLuongLoi.Text == "")
            {

                NH.SoLuongLoi = 0;
            }
            else
            {
                NH.SoLuongLoi = Convert.ToInt32(txtSoLuongLoi.Text);
            }
            NH.TongTien += NH.ThanhTien;
            int flag = 0;
            foreach (ChiTietNhapHangDTO nhDTO in list)
            {
                NH.TongTien += nhDTO.ThanhTien;
                if (NH.MaHoa == nhDTO.MaHoa)
                {

                    nhDTO.SoLuong += NH.SoLuong;
                    nhDTO.SoLuongLoi += NH.SoLuongLoi;
                    nhDTO.ThanhTien += NH.ThanhTien;

                    flag = 1;
                }

            }
            if (flag == 0)
            {
                list.Add(NH);
            }
            dgvNhapHang.DataSource = null;
            dgvNhapHang.DataSource = list;

            txtTongTien.Text = NH.TongTien.ToString();
            txtCongNo.Text = NH.TongTien.ToString();
        }
        private void LoadTenHoa()
        {
            HoaBUS tenhoaBus = new HoaBUS();
            cbbTenHoa.DataSource = tenhoaBus.LayDanhSachTenHoa();
            cbbTenHoa.DisplayMember = "TenHoa";
            cbbTenHoa.ValueMember = "MaHoa";
        }
        private void LoadDSNhaCungCap()
        {
            NhaCungCapBUS nccBUS = new NhaCungCapBUS();
            cbbTenNCC.DataSource = nccBUS.LayDSNhaCungCap();
            cbbTenNCC.DisplayMember = "TenNCC";
            cbbTenNCC.ValueMember = "MaNCC";
        }

        private void cbbTenHoa_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbbTenHoa.DataSource != null)
            {
                string mh = cbbTenHoa.SelectedValue.ToString();
                txtMaHoa.Text = mh;

            }
            else
            {
                MessageBox.Show("Loi");
            }

        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            Menu main = new Menu();
            main.kq = 1;
            main.Show();
            this.Hide();
        }

        private void dgvNhapHang_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int i = e.RowIndex;
            if (i >= 0)
            {
                string MaHoa = dgvNhapHang.Rows[i].Cells[6].Value.ToString();
                txtMaHoa.Text = MaHoa;
                string SoLuong = dgvNhapHang.Rows[i].Cells[1].Value.ToString();
                txtSoLuong.Text = SoLuong;
                string Gia = dgvNhapHang.Rows[i].Cells[2].Value.ToString();
                txtGia.Text = Gia;
                string SLLoi = dgvNhapHang.Rows[i].Cells[5].Value.ToString();
                txtSoLuongLoi.Text = SLLoi;
                string TenHoa = dgvNhapHang.Rows[i].Cells[0].Value.ToString();
                cbbTenHoa.Text = TenHoa;
                string TenNCC = dgvNhapHang.Rows[i].Cells[3].Value.ToString();
                cbbTenNCC.Text = TenNCC;
            }
            else
            {
                return;
            }
        }

        private void txtThanhToan_TextChanged(object sender, EventArgs e)
        {
            if (txtThanhToan.Text != "")
            {
                if (Convert.ToInt32(txtThanhToan.Text) <= Convert.ToInt32(txtTongTien.Text))
                {
                    txtCongNo.Text = Convert.ToString(Int32.Parse(txtTongTien.Text) - Int32.Parse(txtThanhToan.Text));
                }
                else
                {
                    MessageBox.Show("Thanh Toán Phải Nhỏ Hơn Tổng Tiền ", "Thông Báo !");
                    txtCongNo.Text = txtTongTien.Text;
                }

            }
            else
            {
                txtCongNo.Text = txtTongTien.Text;
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            int maHoa = Int32.Parse(txtMaHoa.Text);
            int thanhtien = 0;
            foreach (ChiTietNhapHangDTO nh in list)
            {
                if (maHoa == nh.MaHoa)
                {
                    thanhtien = nh.ThanhTien;
                    list.Remove(nh);
                    break;
                }
            }
            txtTongTien.Text = Convert.ToString((Convert.ToInt32(txtTongTien.Text) - thanhtien));

            dgvNhapHang.DataSource = null;
            dgvNhapHang.DataSource = list;
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            int maHoa = Int32.Parse(txtMaHoa.Text);
            int tiencu = 0; int tienmoi = 0;
            foreach (ChiTietNhapHangDTO nh in list)
            {
                if (maHoa == nh.MaHoa)
                {

                    tiencu = nh.ThanhTien;
                    nh.MaHoa = Int32.Parse(txtMaHoa.Text);
                    nh.MaNCC = Int32.Parse(cbbTenNCC.SelectedValue.ToString());
                    nh.TenNCC = cbbTenNCC.Text;
                    nh.TenHoa = cbbTenHoa.Text;
                    nh.SoLuong = Convert.ToInt32(txtSoLuong.Text);
                    nh.Gia = Convert.ToInt32(txtGia.Text);
                    nh.ThanhTien = nh.SoLuong * nh.Gia;
                    nh.SoLuongLoi = Convert.ToInt32(txtSoLuongLoi.Text);
                    dgvNhapHang.DataSource = null;
                    dgvNhapHang.DataSource = list;
                    tienmoi = nh.ThanhTien;

                    break;
                }
            }
            dgvNhapHang.DataSource = null;
            dgvNhapHang.DataSource = list;
            txtTongTien.Text = Convert.ToString((Convert.ToInt32(txtTongTien.Text) - tiencu) + tienmoi);

        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            NhapHangDTO nhDto = new NhapHangDTO();
            nhDto.ThoiGian = Convert.ToDateTime(txtNgay.Text);
            nhDto.MaNCC = Int32.Parse(cbbTenNCC.SelectedValue.ToString());
            if (txtThanhToan.Text == "")
            {

                nhDto.ThanhToan = 0;
                nhDto.CongNo = Int32.Parse(txtTongTien.Text);
            }
            else
            {
                nhDto.ThanhToan = Int32.Parse(txtThanhToan.Text);
                nhDto.CongNo = Int32.Parse(txtCongNo.Text);
            }


            nhDto.TongTien = Int32.Parse(txtTongTien.Text);
            NhapHangBUS nhBus = new NhapHangBUS();
            nhBus.ThemNhapHang(nhDto);
            int maNH = nhBus.LayMaNhapHang();
            foreach (ChiTietNhapHangDTO nhDTO in list)
            {
                nhBus.ThemSoLuongHoa(nhDTO);
                nhDTO.MaHDN = maNH;
                nhBus.ThemChiTietNhapHang(nhDTO);
            }
            MessageBox.Show("Nhập Hàng Thành Công!!!", "Thông Báo");
            txtCongNo.Text = null;
            txtGia.Text = null;

            txtSoLuong.Text = null;
            txtSoLuongLoi.Text = null;
            txtThanhToan.Text = null;
            txtTongTien.Text = null;
            txtCongNo.Text = null;
            list.Clear();
            dgvNhapHang.DataSource = null;
        }

        private void btnRefresh_Click(object sender, EventArgs e)
        {
            txtCongNo.Text = null;
            txtGia.Text = null;
            txtSoLuong.Text = null;
            txtSoLuongLoi.Text = null;
            txtThanhToan.Text = null;
            txtTongTien.Text = null;
            txtCongNo.Text = null;
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            txtCongNo.Text = null;
            txtGia.Text = null;
            txtSoLuong.Text = null;
            txtSoLuongLoi.Text = null;
            txtThanhToan.Text = null;
            txtTongTien.Text = null;
            txtCongNo.Text = null;
            list.Clear();
            dgvNhapHang.DataSource = null;
        }




    }
}
